Detection of a number of touch contacts of a multi-touch input

ABSTRACT

Determining touch contact locations is disclosed. A signal that has been disturbed by touch contacts of a touch input on a surface is received. The received signal is transformed to determine a spatial domain signal. The spatial domain signal is compared with an expected signal associated with potential locations of sources of disturbances caused by the touch contacts. The locations of the touch contacts of the touch input are determined based at least in part on the comparison.

CROSS REFERENCE TO OTHER APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 61/673,103 entitled DETECTION OF NUMBER OF CONTACT POINTS IN A TOUCHSENSING SYSTEM filed Jul. 18, 2012 which is incorporated herein byreference for all purposes.

This application is a continuation in part of U.S. Pat. No. 9,348,468entitled DETECTING MULTI-TOUCH INPUTS filed Jun. 7, 2013 which isincorporated herein by reference for all purposes.

BACKGROUND OF THE INVENTION

Popularity of devices such as tablet computers and smartphones hasspawned an ecosystem of software applications utilizing touch inputdetection, often requiring the detection of multiple touch pointssimultaneously. The ability to reliably and efficiently detectmulti-touch input locations on a display surface has enabledapplications to take advantage of new user interface interactionpatterns to offer enhanced application usability across a wide range ofinexpensive devices. One challenge in multi-touch detection isdetermination of the number of simultaneous touches or contact points onthe sensing surface; such information can be used to simplify andincrease the accuracy of determining the touch or contact locations.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the followingdetailed description and the accompanying drawings.

FIG. 1 is a block diagram illustrating an embodiment of a system fordetecting a touch input surface disturbance.

FIG. 2 is a block diagram illustrating an embodiment of a system fordetecting a touch input.

FIG. 3 is a flow chart illustrating an embodiment of a process forcalibrating and validating touch detection.

FIG. 4 is a flow chart illustrating an embodiment of a process fordetecting a user touch input.

FIG. 5 is a flow chart illustrating an embodiment of a process fordetermining a location associated with a disturbance on a surface.

FIG. 6 is a flow chart illustrating an embodiment of a process fordetermining time domain signal capturing of a disturbance caused by atouch input.

FIG. 7 is a flow chart illustrating an embodiment of a process comparingspatial domain signals with one or more expected signals to determinetouch contact location(s) of a touch input.

FIG. 8 is a flowchart illustrating an embodiment of a process forselecting a selected hypothesis set of touch contact location(s).

FIG. 9 is a flow chart illustrating an embodiment of a process fordetermining the number of simultaneous touch contacts.

FIG. 10 is a flow chart illustrating an embodiment of a process fordetermining a type of object used to provide a touch contact.

FIG. 11 shows a waveform diagram of an example received/filtered signalthat has been identified with touch contact object types.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as aprocess; an apparatus; a system; a composition of matter; a computerprogram product embodied on a computer readable storage medium; and/or aprocessor, such as a processor configured to execute instructions storedon and/or provided by a memory coupled to the processor. In thisspecification, these implementations, or any other form that theinvention may take, may be referred to as techniques. In general, theorder of the steps of disclosed processes may be altered within thescope of the invention. Unless stated otherwise, a component such as aprocessor or a memory described as being configured to perform a taskmay be implemented as a general component that is temporarily configuredto perform the task at a given time or a specific component that ismanufactured to perform the task. As used herein, the term ‘processor’refers to one or more devices, circuits, and/or processing coresconfigured to process data, such as computer program instructions.

A detailed description of one or more embodiments of the invention isprovided below along with accompanying figures that illustrate theprinciples of the invention. The invention is described in connectionwith such embodiments, but the invention is not limited to anyembodiment. The scope of the invention is limited only by the claims andthe invention encompasses numerous alternatives, modifications andequivalents. Numerous specific details are set forth in the followingdescription in order to provide a thorough understanding of theinvention. These details are provided for the purpose of example and theinvention may be practiced according to the claims without some or allof these specific details. For the purpose of clarity, technicalmaterial that is known in the technical fields related to the inventionhas not been described in detail so that the invention is notunnecessarily obscured.

Determining touch input locations is disclosed. For example, a usertouch input on the glass surface of a display screen is detected. Insome embodiments, the touch input includes multiple simultaneous touchcontacts (i.e., multi-touch input). For example, a user places twofingers on a touch screen display. In some embodiments, a signal such asan acoustic or ultrasonic signal is propagated freely through apropagating medium with a surface using a transmitter coupled to themedium. When the surface is touched, the propagated signal is disturbed(e.g., the touch causes an interference with the propagated signal). Insome embodiments, the disturbed signal is received at a sensor coupledto the propagating medium. By processing the received signal andcomparing it against an expected signal, touch contact locations on thesurface associated with the touch input are at least in part determined.For example, the disturbed signal is received at a plurality of sensorsand a relative time difference between when the disturbed signal wasreceived at different sensors is used to determine time domain signalsrepresenting the time differences.

In some embodiments, the time domain signals are transformed todetermine spatial domain signals representing total distances traveledon the propagating medium by the respective received signals. Thespatial domain signals may be compared with one or more expected signalsassociated with different potential touch contact locations of the touchinput to select potential locations that are associated with the closestmatching expected signal(s) as the touch contact locations. In someembodiments, the number of touch contacts included in the touch input isdetermined at least in part by analyzing a received acoustic signal froma sensor. For example, the number of portion(s) of the received acousticsignal that are each associated with a different touch input contact isidentified. In some embodiments, the received acoustic signal isanalyzed to count the number of times acoustic energy of the receivedsignal is associated with an individual touch input contact.

In some embodiments, the touch input location is used to determine oneor more of the following associated with a touch input: a gesture, acoordinate position, a time, a time frame, a direction, a velocity, aforce magnitude, a proximity magnitude, a pressure, a size, and othermeasurable or derived parameters. In some embodiments, by detectingdisturbances of a freely propagated signal, touch input detectiontechnology can be applied to larger surface regions with less or noadditional costs due to a larger surface region as compared to certainprevious touch detection technologies. Additionally, the opticaltransparency of a touch screen may not have to be affected as comparedto resistive and capacitive touch technologies. Merely by way ofexample, the touch detection described herein can be applied to avariety of objects such as a kiosk, an ATM, a computing device, anentertainment device, a digital signage apparatus, a cell phone, atablet computer, a point of sale terminal, a food and restaurantapparatus, a gaming device, a casino game and application, a piece offurniture, a vehicle, an industrial application, a financialapplication, a medical device, an appliance, and any other objects ordevices having surfaces.

Determining a type of object utilized to provide a touch input isdisclosed. In some embodiments, an acoustic signal that captures adisturbance (e.g., sound, vibration, etc.) by a touch input objectcontacting a touch input surface is received. For example, when anobject contacts a touch input surface, a sound is generated from theobject striking the touch input surface and the generated sound iscaptured by a sensor attached to a medium (e.g., glass) of the touchinput surface as an acoustic signal. In some embodiments, the acousticsignal is received from an acoustic transducer coupled to a medium ofthe touch input surface.

At least a portion of the received signal is compared with one or moreacoustic signatures of one or more touch input object types. Forexample, for each detectable touch input object type, an associatedacoustic signature is predetermined (e.g., acoustic signal detected fromeach sample touch input object type is captured as an acoustic signatureof the sample touch input object type) and stored in a library ofacoustic signatures. A type of the touch input object contacting thetouch input surface is determined based at least in part on thecomparison. For example, if at least a portion of the received signalmatches a predetermined acoustic signature corresponding to a particulartouch input object type, the particular touch input object type isidentified as the type of touch input object contacting the touch inputsurface.

FIG. 1 is a block diagram illustrating an embodiment of a system fordetecting a touch input surface disturbance. In some embodiments, thesystem shown in FIG. 1 is included in a kiosk, an ATM, a computingdevice, an entertainment device, a digital signage apparatus, a cellphone, a tablet computer, a point of sale terminal, a food andrestaurant apparatus, a gaming device, a casino game and application, apiece of furniture, a vehicle, an industrial application, a financialapplication, a medical device, an appliance, and any other objects ordevices having surfaces. Propagating signal medium 102 is coupled totransmitters 104, 106, 108, and 110 and sensors 112, 114, 116, and 118.The locations where transmitters 104, 106, 108, and 110 and sensors 112,114, 116, and 118 have been coupled to propagating signal medium 102, asshown in FIG. 1, are merely an example. Other configurations oftransmitter and sensor locations may exist in various embodiments.Although FIG. 1 shows sensors located adjacent to transmitters, sensorsmay be located apart from transmitters in other embodiments. In variousembodiments, the propagating medium includes one or more of thefollowing: panel, table, glass, screen, door, floor, whiteboard,plastic, wood, steel, metal, semiconductor, insulator, conductor, andany medium that is able to propagate an acoustic or ultrasonic signal.For example, medium 102 is glass of a display screen. A first surface ofmedium 102 includes a surface area where a user may touch to provide aselection input and a substantially opposite surface of medium 102 iscoupled to the transmitters and sensors shown in FIG. 1. In variousembodiments, a surface of medium 102 is substantially flat, curved, orcombinations thereof and may be configured in a variety of shapes suchas rectangular, square, oval, circular, trapezoidal, annular, or anycombination of these, and the like.

Propagating signal medium 102 is coupled to sensor 124. For example,sensor 124 is coupled to one surface of propagating signal medium 102and the same or another surface (e.g., opposing surface) of propagatingsignal medium 102 may be configured to receive a touch input. Thelocation of sensor 124 on propagating signal medium 102, as shown inFIG. 1, is merely an example. Other location configurations of sensor124 may exist in various embodiments. Although a single sensor 124 hasbeen shown to simplify the illustration, any number of sensors of thetype of sensor 124 may be included. In some embodiments, sensor 124 is asensor dedicated to detecting a number of touch input contacts receivedon medium 102 and/or a type of object used to contact medium 102 toprovide a touch input, and sensors 112, 114, 116, and 118 are dedicatedto detecting one or more touch locations of the touch input. Forexample, sensors 112, 114, 116, and 118 detect ultrasonic frequencies ofan active signal that has been disturbed by a touch input contact, andsensor 124 detects audible frequencies of a sound caused by a touchinput object striking medium 102. In some embodiments, sensor 124 is oneof a plurality of sensors used to identify a number of touch inputcontacts received on propagating signal medium 102 and/or a type ofobject used to contact medium 102 to provide a touch input. In analternative embodiment, one or more of sensors 112, 114, 116, and 118are used to identify a number of touch input contacts received on medium102 and/or a type of object used to contact medium 102 to provide atouch input. For example, sensor 124 is not utilized and one or more ofsensors 112, 114, 116, and 118 are used to identify a number of touchinput contacts received on medium 102 and/or a type of object used tocontact medium 102 to provide a touch input in addition to being used todetect a location of a touch input.

Acoustic processor 126 receives signal detected by sensor 124. Thereceived signal may be processed by acoustic processor 126 to identify anumber of touch input contacts received on medium 102 and/or a type ofobject used to contact medium 102 to provide a touch input. In someembodiments, the received signal may be processed/filtered to reducenoise. For example, a component of the received signal that is likelynot associated with an acoustic noise of a touch input isfiltered/removed. In order to detect noise, one or more signals fromsensors 112, 114, 116, and 118 may be utilized. In some embodiments,acoustic processor 126 utilizes a database/library of touch input objectwaveform signatures to detect a type of object used to contact medium102. The database may be stored in acoustic processor 126 and/or anexternal database may be utilized. Acoustic processor 126 outputs one ormore identifiers of a number of received touch input contacts and/ortype(s) of object(s) used to provide touch input contact(s) to touchdetector 120 and/or application system 122. For example, the identifiernumber of received touch input contacts may be used by touch detector120 to determine a touch input location for each of the received touchinput contacts and the type of identifier may be used by applicationsystem 122 to provide different application functionality based on thetype of identifier. In an alternative embodiment, the functionality ofacoustic processor 126 is provided by touch detector 120 and acousticprocessor 126 is not utilized. In some embodiments, acoustic processor126 and touch detector 120 are integrated on a same chip.

In some embodiments, acoustic processor 126 may be powered down whenidle, waiting for an appropriate contact event to be detected by sensors112, 114, 116, 118, or 124 and/or touch detector 120. In an examplewhere the touch input surface is the screen of a mobile computingdevice, the device could be in a low power state until an appropriateevent is detected to “wakeup” the device.

Although the example of FIG. 1 shows touch input location detection bydetecting disturbances of an active signal, in an alternativeembodiment, sensor 124 and/or acoustic processor 126 may be utilizedwith other types of touch input location detection technology toidentify a number of touch input contacts received on medium 102 and/ora type of object used to contact medium 102 to provide a touch input.For example, sensor 124 and/or acoustic processor 126 may be utilizedwith capacitive, resistive, Acoustic Pulse Recognition, or SurfaceAcoustic Wave-based touch detection technology. In some embodimentsusing resistive touch technology, a touch input medium is coated withmultiple conductive layers that register touches when physical pressureis applied to the layers to force the layers to make physical contact.In some embodiments using capacitive touch technology, a touch input iscoated with material that can hold an electrical charge sensitive to ahuman finger. By detecting the change in the electrical charge due to atouch input, a touch location of the touch input may be detected. In thecapacitive touch technology example, transmitters 104, 106, 108, and 110and sensors 112, 114, 116, and 118 do not exist and instead medium 102is configured to detect changes in capacitance due to a touch inputcontact. In some embodiments, Acoustic Pulse Recognition includestransducers attached to the edges of a touchscreen glass that pick upthe sound emitted on the glass due to a touch input. In someembodiments, Surface Acoustic Wave-based technology sends ultrasonicwaves in a guided pattern using reflectors on the touch screen to detecta touch.

Examples of transmitters 104, 106, 108, and 110 include piezoelectrictransducers, electromagnetic transducers, transmitters, sensors, and/orany other transmitters and transducers capable of propagating a signalthrough medium 102. Examples of sensors 112, 114, 116, 118, and 124include piezoelectric transducers, electromagnetic transducers, laservibrometer transmitters, and/or any other sensors and transducerscapable of detecting a signal on medium 102. In some embodiments, atransducer is designed to convert acoustic and/or vibrational energy onthe touch input surface to an electronic signal for processing. In someembodiments, the transmitters and sensors shown in FIG. 1 are coupled tomedium 102 in a manner that allows a user's input to be detected in apredetermined region of medium 102. Although four transmitters and foursensors are shown, any number of transmitters and any number of sensorsmay be used in other embodiments. For example, two transmitters andthree sensors may be used. In some embodiments, a single transducer actsas both a transmitter and a sensor. For example, transmitter 104 andsensor 112 represent a single piezoelectric transducer. In the exampleshown, transmitter 104 may propagate a signal through medium 102.Sensors 112, 114, 116, and 118 receive the propagated signal. In anotherembodiment, the transmitters/sensors in FIG. 1 are attached to aflexible cable coupled to medium 102 via an encapsulant and/or gluematerial and/or fasteners.

Touch detector 120 is connected to the transmitters and sensors shown inFIG. 1. In some embodiments, detector 120 includes one or more of thefollowing: an integrated circuit chip, a printed circuit board, aprocessor, and other electrical components and connectors. Detector 120determines and sends a signal to be propagated by transmitters 104, 106,108, and 110. Detector 120 also receives the signal detected by sensors112, 114, 116, and 118. The received signals are processed by detector120 to determine whether a disturbance associated with a user input hasbeen detected at a location on a surface of medium 102 associated withthe disturbance. Detector 120 is in communication with applicationsystem 122. Application system 122 uses information provided by detector120. For example, application system 122 receives from detector 120 acoordinate associated with a user touch input that is used byapplication system 122 to control a software application of applicationsystem 122. In some embodiments, application system 122 includes aprocessor and/or memory/storage. In other embodiments, detector 120 andapplication system 122 are at least in part included/processed in asingle processor. An example of data provided by detector 120 toapplication system 122 includes one or more of the following associatedwith a user indication: a location coordinate of a surface of medium102, a gesture, simultaneous user indications (e.g., multi-touch input),a time, a status, a direction, a velocity, a force magnitude, aproximity magnitude, a pressure, a size, and other measurable or derivedinformation.

FIG. 2 is a block diagram illustrating an embodiment of a system fordetecting a touch input. In some embodiments, touch detector 202 isincluded in touch detector 120 of FIG. 1. In some embodiments, thesystem of FIG. 2 is integrated in an integrated circuit chip. Touchdetector 202 includes system clock 204 that provides a synchronoussystem time source to one or more other components of detector 202.Controller 210 controls data flow and/or commands between microprocessor206, interface 208, DSP engine 220, and signal generator 212. In someembodiments, microprocessor 206 processes instructions and/orcalculations that can be used to program software/firmware and/orprocess data of detector 202. In some embodiments, a memory is coupledto microprocessor 206 and is configured to provide microprocessor 206with instructions. Signal generator 212 generates a signal to be used topropagate a signal such as a signal propagated by transmitter 104 ofFIG. 1. For example, signal generator 212 generates a pseudorandombinary sequence signal. Driver 214 receives the signal from generator212 and drives one or more transmitters, such as transmitters 104, 106,108, and 110 of FIG. 1, to propagate a signal through a medium.

A signal detected from a sensor such as sensor 112 of FIG. 1 is receivedby detector 202 and signal conditioner 216 conditions (e.g., filters)the received analog signal for further processing. For example, signalconditioner 216 receives the signal output by driver 214 and performsecho cancellation of the signal received by signal conditioner 216. Theconditioned signal is converted to a digital signal by analog-to-digitalconverter 218. The converted signal is processed by digital signalprocessor engine 220. For example, DSP engine 220 correlates theconverted signal against a reference signal to determine a time domainsignal that represents a time delay caused by a touch input on apropagated signal. In some embodiments, DSP engine 220 performsdispersion compensation. For example, the time delay signal that resultsfrom correlation is compensated for dispersion in the touch inputsurface medium and translated to a spatial domain signal that representsa physical distance traveled by the propagated signal disturbed by thetouch input. In some embodiments, DSP engine 220 performs base pulsecorrelation. For example, the spatial domain signal is filtered using amatch filter to reduce noise in the signal.

A result of DSP engine 220 may be used by microprocessor 206 todetermine a location associated with a user touch input. For example,microprocessor 206 determines a hypothesis location where a touch inputmay have been received and calculates an expected signal that isexpected to be generated if a touch input was received at the hypothesislocation and the expected signal is compared with a result of DSP engine220 to determine whether a touch input was provided at the hypothesislocation.

Interface 208 provides an interface for microprocessor 206 andcontroller 210 that allows an external component to access and/orcontrol detector 202. For example, interface 208 allows detector 202 tocommunicate with application system 122 of FIG. 1 and provides theapplication system with location information associated with a usertouch input.

FIG. 3 is a flow chart illustrating an embodiment of a process forcalibrating and validating touch detection. In some embodiments, theprocess of FIG. 3 is used at least in part to calibrate and validate thesystem of FIG. 1 and/or the system of FIG. 2. At 302, locations ofsignal transmitters and sensors with respect to a surface aredetermined. For example, locations of transmitters and sensors shown inFIG. 1 are determined with respect to their location on a surface ofmedium 102. In some embodiments, determining the locations includesreceiving location information. In various embodiments, one or more ofthe locations may be fixed and/or variable.

At 304, signal transmitters and sensors are calibrated. In someembodiments, calibrating the transmitter includes calibrating acharacteristic of a signal driver and/or transmitter (e.g., strength).In some embodiments, calibrating the sensor includes calibrating acharacteristic of a sensor (e.g., sensitivity). In some embodiments, thecalibration of 304 is performed to optimize the coverage and improvesignal-to-noise transmission/detection of a signal (e.g., acoustic orultrasonic) to be propagated through a medium and/or a disturbance to bedetected. For example, one or more components of the system of FIG. 1and/or the system of FIG. 2 are tuned to meet a signal-to-noiserequirement. In some embodiments, the calibration of 304 depends on thesize and type of a transmission/propagation medium and geometricconfiguration of the transmitters/sensors. In some embodiments, thecalibration of step 304 includes detecting a failure or aging of atransmitter or sensor. In some embodiments, the calibration of step 304includes cycling the transmitter and/or receiver. For example, toincrease the stability and reliability of a piezoelectric transmitterand/or receiver, a burn-in cycle is performed using a burn-in signal. Insome embodiments, the step of 304 includes configuring at least onesensing device within a vicinity of a predetermined spatial region tocapture an indication associated with a disturbance using the sensingdevice. The disturbance is caused in a selected portion of the inputsignal corresponding to a selection portion of the predetermined spatialregion.

At 306, surface disturbance detection is calibrated. In someembodiments, a test signal is propagated through a medium such as medium102 of FIG. 1 to determine an expected sensed signal when no disturbancehas been applied. In some embodiments, a test signal is propagatedthrough a medium to determine a sensed signal when one or morepredetermined disturbances (e.g., predetermined touch) are applied at apredetermined location. Using the sensed signal, one or more componentsmay be adjusted to calibrate the disturbance detection. In someembodiments, the test signal is used to determine a signal that can belater used to process/filter a detected signal disturbed by a touchinput.

In some embodiments, data determined using one or more steps of FIG. 3is used to determine data (e.g., formula, variable, coefficients, etc.)that can be used to calculate an expected signal that would result whena touch input is provided at a specific location on a touch inputsurface. For example, one or more predetermined test touch disturbancesare applied at one or more specific locations on the touch input surfaceand a test propagating signal that has been disturbed by the test touchdisturbance is used to determine the data (e.g., transmitter/sensorparameters) that is to be used to calculate an expected signal thatwould result when a touch input is provided at the one or more specificlocations.

At 308, a validation of a touch detection system is performed. Forexample, the system of FIG. 1 and/or FIG. 2 is testing usingpredetermined disturbance patterns to determine detection accuracy,detection resolution, multi-touch detection, and/or response time. Ifthe validation fails, the process of FIG. 3 may be at least in partrepeated and/or one or more components may be adjusted before performinganother validation.

FIG. 4 is a flow chart illustrating an embodiment of a process fordetecting a user touch input. In some embodiments, the process of FIG. 4is at least in part implemented on touch detector 120 of FIG. 1 and/ortouch detector 202 of FIG. 2.

At 402, a signal that can be used to propagate an active signal througha surface region is sent. In some embodiments, sending the signalincludes driving (e.g., using driver 214 of FIG. 2) a transmitter suchas a transducer (e.g., transmitter 104 of FIG. 1) to propagate an activesignal (e.g., acoustic or ultrasonic mechanical wave) through apropagating medium with the surface region. In some embodiments, thesignal includes a sequence selected to optimize autocorrelation (e.g.,resulting in narrow/short peaks) of the signal. For example, the signalincludes a Zadoff-Chu sequence. In some embodiments, the signal includesa pseudorandom binary sequence with or without modulation. In someembodiments, the propagated signal is an acoustic signal. In someembodiments, the propagated signal is an ultrasonic signal (e.g.,outside the range of human hearing). For example, the propagated signalis a signal above 20 kHz (e.g., within the range between 80 kHz to 100kHz). In other embodiments, the propagated signal may be within therange of human hearing. In some embodiments, by using the active signal,a user input on or near the surface region can be detected by detectingdisturbances in the active signal when it is received by a sensor on thepropagating medium. By using an active signal rather than merelylistening passively for a user touch indication on the surface, othervibrations and disturbances that are not likely associated with a usertouch indication can be more easily discerned/filtered out. In someembodiments, the active signal is used in addition to receiving apassive signal from a user input to determine the user input.

At 404, the active signal that has been disturbed by a disturbance ofthe surface region is received. The disturbance may be associated with auser touch indication. In some embodiments, the disturbance causes theactive signal that is propagating through a medium to be attenuatedand/or delayed. In some embodiments, the disturbance in a selectedportion of the active signal corresponds to a location on the surfacethat has been indicated (e.g., touched) by a user.

At 406, the received signal is processed to at least in part determine alocation associated with the disturbance. In some embodiments, receivingthe received signal and processing the received signal are performed ona periodic interval. For example, the received signal is captured in 5ms intervals and processed. In some embodiments, determining thelocation includes extracting a desired signal from the received signalat least in part by removing or reducing undesired components of thereceived signal such as disturbances caused by extraneous noise andvibrations not useful in detecting a touch input. In some embodiments,determining the location includes processing the received signal andcomparing the processed received signal with a calculated expectedsignal associated with a hypothesis touch contact location to determinewhether a touch contact was received at the hypothesis location of thecalculated expected signal. Multiple comparisons may be performed withvarious expected signals associated with different hypothesis locationsuntil the expected signal that best matches the processed receivedsignal is found and the hypothesis location of the matched expectedsignal is identified as the touch contact location(s) of a touch input.For example, signals received by sensors (e.g., sensors 112, 114, 116,and 118 of FIG. 1) from various transmitters (e.g., transmitters 104,106, 108, and 110 of FIG. 1) are compared with corresponding expectedsignals to determine a touch input location (e.g., single or multi-touchlocations) that minimizes the overall difference between all respectivereceived and expected signals.

The location, in some embodiments, is one or more locations (e.g.,location coordinate(s)) on the surface region where a user has provideda touch contact. In addition to determining the location, one or more ofthe following information associated with the disturbance may bedetermined at 406: a gesture, simultaneous user indications (e.g.,multi-touch input), a time, a status, a direction, a velocity, a forcemagnitude, a proximity magnitude, a pressure, a size, and othermeasurable or derived information. In some embodiments, the location isnot determined at 406 if a location cannot be determined using thereceived signal and/or the disturbance is determined to be notassociated with a user input. Information determined at 406 may beprovided and/or outputted.

Although FIG. 4 shows receiving and processing an active signal that hasbeen disturbed, in some embodiments, a received signal has not beendisturbed by a touch input and the received signal is processed todetermine that a touch input has not been detected. An indication that atouch input has not been detected may be provided/outputted.

FIG. 5 is a flow chart illustrating an embodiment of a process fordetermining a location associated with a disturbance on a surface. Insome embodiments, the process of FIG. 5 is included in 406 of FIG. 4.The process of FIG. 5 may be implemented in touch detector 120 of FIG. 1and/or touch detector 202 of FIG. 2. In some embodiments, at least aportion of the process of FIG. 5 is repeated for each combination oftransmitter and sensor pair. For example, for each active signaltransmitted by a transmitter (e.g., transmitted by transmitter 104, 106,108, or 110 of FIG. 1), at least a portion of the process of FIG. 5 isrepeated for each sensor (e.g., sensors 112, 114, 116, and 118 ofFIG. 1) receiving the active signal. In some embodiments, the process ofFIG. 5 is performed periodically (e.g., 5 ms periodic interval).

At 502, a received signal is conditioned. In some embodiments, thereceived signal is a signal including a pseudorandom binary sequencethat has been freely propagated through a medium with a surface that canbe used to receive a user input. For example, the received signal is thesignal that has been received at 404 of FIG. 4. In some embodiments,conditioning the signal includes filtering or otherwise modifying thereceived signal to improve signal quality (e.g., signal-to-noise ratio)for detection of a pseudorandom binary sequence included in the receivedsignal and/or user touch input. In some embodiments, conditioning thereceived signal includes filtering out from the signal extraneous noiseand/or vibrations not likely associated with a user touch indication.

At 504, an analog to digital signal conversion is performed on thesignal that has been conditioned at 502. In various embodiments, anynumber of standard analog to digital signal converters may be used.

At 506, a time domain signal capturing a received signal time delaycaused by a touch input disturbance is determined. In some embodiments,determining the time domain signal includes correlating the receivedsignal (e.g., signal resulting from 504) to locate a time offset in theconverted signal (e.g., perform pseudorandom binary sequencedeconvolution) where a signal portion that likely corresponds to areference signal (e.g., reference pseudorandom binary sequence that hasbeen transmitted through the medium) is located. For example, a resultof the correlation can be plotted as a graph of time within the receivedand converted signal (e.g., time-lag between the signals) vs. a measureof similarity. In some embodiments, performing the correlation includesperforming a plurality of correlations. For example, a coarsecorrelation is first performed then a second level of fine correlationis performed. In some embodiments, a baseline signal that has not beendisturbed by a touch input disturbance is removed in the resulting timedomain signal. For example, a baseline signal (e.g., determined at 306of FIG. 3) representing a measured signal (e.g., a baseline time domainsignal) associated with a received active signal that has not beendisturbed by a touch input disturbance is subtracted from a result ofthe correlation to further isolate effects of the touch inputdisturbance by removing components of the steady state baseline signalnot affected by the touch input disturbance.

At 508, the time domain signal is converted to a spatial domain signal.In some embodiments, converting the time domain signal includesconverting the time domain signal determined at 506 into a spatialdomain signal that translates the time delay represented in the timedomain signal to a distance traveled by the received signal in thepropagating medium due to the touch input disturbance. For example, atime domain signal that can be graphed as time within the received andconverted signal vs. a measure of similarity is converted to a spatialdomain signal that can be graphed as distance traveled in the medium vs.the measure of similarity.

In some embodiments, performing the conversion includes performingdispersion compensation. For example, using a dispersion curvecharacterizing the propagating medium, time values of the time domainsignal are translated to distance values in the spatial domain signal.In some embodiments, a resulting curve of the time domain signalrepresenting a distance likely traveled by the received signal due to atouch input disturbance is narrower than the curve contained in the timedomain signal representing the time delay likely caused by the touchinput disturbance. In some embodiments, the time domain signal isfiltered using a match filter to reduce undesired noise in the signal.For example, using a template signal that represents an ideal shape of aspatial domain signal, the converted spatial domain signal is matchfiltered (e.g., spatial domain signal correlated with the templatesignal) to reduce noise not contained in the bandwidth of the templatesignal. The template signal may be predetermined (e.g., determined at306 of FIG. 3) by applying a sample touch input to a touch input surfaceand measuring a received signal.

At 510, the spatial domain signal is compared with one or more expectedsignals to determine a touch input captured by the received signal. Insome embodiments, comparing the spatial domain signal with the expectedsignal includes generating expected signals that would result if a touchcontact was received at hypothesis locations. For example, a hypothesisset of one or more locations (e.g., single touch or multi-touchlocations) where a touch input might have been received on a touch inputsurface is determined, and an expected spatial domain signal that wouldresult at 508 if touch contacts were received at the hypothesis set oflocation(s) is determined (e.g., determined for a specific transmitterand sensor pair using data measured at 306 of FIG. 3). The expectedspatial domain signal may be compared with the actual spatial signaldetermined at 508. The hypothesis set of one or more locations may beone of a plurality of hypothesis sets of locations (e.g., exhaustive setof possible touch contact locations on a coordinate grid dividing atouch input surface).

The proximity of location(s) of a hypothesis set to the actual touchcontact location(s) captured by the received signal may be proportionalto the degree of similarity between the expected signal of thehypothesis set and the spatial signal determined at 508. In someembodiments, signals received by sensors (e.g., sensors 112, 114, 116,and 118 of FIG. 1) from transmitters (e.g., transmitters 104, 106, 108,and 110 of FIG. 1) are compared with corresponding expected signals foreach sensor/transmitter pair to select a hypothesis set that minimizesthe overall difference between all respective detected and expectedsignals. In some embodiments, once a hypothesis set is selected, anothercomparison between the determined spatial domain signals and one or morenew expected signals associated with finer resolution hypothesis touchlocation(s) (e.g., locations on a new coordinate grid with moreresolution than the coordinate grid used by the selected hypothesis set)near the location(s) of the selected hypothesis set is determined.

FIG. 6 is a flow chart illustrating an embodiment of a process fordetermining time domain signal capturing of a disturbance caused by atouch input. In some embodiments, the process of FIG. 6 is included in506 of FIG. 5. The process of FIG. 6 may be implemented in touchdetector 120 of FIG. 1 and/or touch detector 202 of FIG. 2.

At 602, a first correlation is performed. In some embodiments,performing the first correlation includes correlating a received signal(e.g., resulting converted signal determined at 504 of FIG. 5) with areference signal. Performing the correlation includes cross-correlatingor determining a convolution (e.g., interferometry) of the convertedsignal with a reference signal to measure the similarity of the twosignals as a time-lag is applied to one of the signals. By performingthe correlation, the location of a portion of the converted signal thatmost corresponds to the reference signal can be located. For example, aresult of the correlation can be plotted as a graph of time within thereceived and converted signal (e.g., time-lag between the signals) vs. ameasure of similarity. The associated time value of the largest value ofthe measure of similarity corresponds to the location where the twosignals most correspond. By comparing this measured time value against areference time value (e.g., at 306 of FIG. 3) not associated with atouch indication disturbance, a time delay/offset or phase differencecaused on the received signal due to a disturbance caused by a touchinput can be determined. In some embodiments, by measuring theamplitude/intensity difference of the received signal at the determinedtime vs. a reference signal, a force associated with a touch indicationmay be determined. In some embodiments, the reference signal isdetermined based at least in part on the signal that was propagatedthrough a medium (e.g., based on a source pseudorandom binary sequencesignal that was propagated). In some embodiments, the reference signalis at least in part determined using information determined duringcalibration at 306 of FIG. 3. The reference signal may be chosen so thatcalculations required to be performed during the correlation may besimplified. For example, the reference signal is a simplified referencesignal that can be used to efficiently correlate the reference signalover a relatively large time difference (e.g., lag-time) between thereceived and converted signal and the reference signal.

At 604, a second correlation is performed based on a result of the firstcorrelation. Performing the second correlation includes correlating(e.g., cross-correlation or convolution similar to step 602) a receivedsignal (e.g., resulting converted signal determined at 504 of FIG. 5)with a second reference signal. The second reference signal is a morecomplex/detailed (e.g., more computationally intensive) reference signalas compared to the first reference signal used in 602. In someembodiments, the second correlation is performed because using thesecond reference signal in 602 may be too computationally intensive forthe time interval required to be correlated in 602. Performing thesecond correlation based on the result of the first correlation includesusing one or more time values determined as a result of the firstcorrelation. For example, using a result of the first correlation, arange of likely time values (e.g., time-lag) that most correlate betweenthe received signal and the first reference signal is determined and thesecond correlation is performed using the second reference signal onlyacross the determined range of time values to fine tune and determinethe time value that most corresponds to where the second referencesignal (and, by association, also the first reference signal) matchedthe received signal. In various embodiments, the first and secondcorrelations have been used to determine a portion within the receivedsignal that corresponds to a disturbance caused by a touch input at alocation on a surface of a propagating medium. In other embodiments, thesecond correlation is optional. For example, only a single correlationstep is performed. Any number of levels of correlations may be performedin other embodiments.

FIG. 7 is a flow chart illustrating an embodiment of a process comparingspatial domain signals with one or more expected signals to determinetouch contact location(s) of a touch input. In some embodiments, theprocess of FIG. 7 is included in 510 of FIG. 5. The process of FIG. 7may be implemented in touch detector 120 of FIG. 1 and/or touch detector202 of FIG. 2.

At 702, a number of simultaneous touch contacts included in a touchinput is determined. In some embodiments, when detecting a location of atouch contact, the number of simultaneous contacts being made to a touchinput surface (e.g., surface of medium 102 of FIG. 1) is desired to bedetermined. For example, it is desired to determine the number offingers touching a touch input surface (e.g., single touch ormulti-touch). In some embodiments, an identifier of the number ofsimultaneous touch contacts is received from acoustic processor 126 ofFIG. 1. In some embodiments, the number of touch contacts (e.g.,fingers) touching a touch input surface may be determined by “counting”the number of touches/contacts (e.g., determine the number of timesdetected acoustic signal is above a threshold level) detected by anacoustic sensor within a predetermined amount of time. For example, whena user intends to touch a touch input screen with multiple fingers atthe same time, it is rare for the fingers to land on the screen at thesame time. There will likely be a small delay between when the fingersland on the touch surface. The number of impacts (e.g., determined byanalyzing acoustic signal received from sensor 124 of FIG. 1) may bedetermined from determining the number of consecutive touches within arelatively short amount of time (e.g., within a predetermined amount oftime).

At 704, one or more hypothesis sets of one or more touch contactlocations associated with the determined number of simultaneous touchcontacts are determined. In some embodiments, it is desired to determinethe coordinate locations of fingers touching a touch input surface. Insome embodiments, in order to determine the touch contact locations, oneor more hypothesis sets are determined on potential location(s) of touchcontact(s) and each hypothesis set is tested to determine whichhypothesis set is most consistent with a detected data.

In some embodiments, determining the hypothesis set of potential touchcontact locations includes dividing a touch input surface into aconstrained number of points (e.g., divide into a coordinate grid) wherea touch contact may be detected. For example, in order to initiallyconstrain the number of hypothesis sets to be tested, the touch inputsurface is divided into a coordinate grid with relatively large spacingbetween the possible coordinates. Each hypothesis set includes a numberof location identifiers (e.g., location coordinates) that match thenumber determined in 702. For example, if two was determined to be thenumber in 702, each hypothesis set includes two location coordinates onthe determined coordinate grid that correspond to potential locations oftouch contacts of a received touch input. In some embodiments,determining the one or more hypothesis sets includes determiningexhaustive hypothesis sets that exhaustively cover all possible touchcontact location combinations on the determined coordinate grid for thedetermined number of simultaneous touch contacts. In some embodiments, apreviously determined touch contact location(s) of a previous determinedtouch input is initialized as the touch contact location(s) of ahypothesis set.

At 706, a selected hypothesis set is selected among the one or morehypothesis sets of touch contact location(s) as best corresponding totouch contact locations captured by detected signal(s). In someembodiments, one or more propagated active signals (e.g., signaltransmitted at 402 of FIG. 4) that have been disturbed by a touch inputon a touch input surface are received (e.g., received at 404 of FIG. 4)by one or more sensors such as sensors 112, 114, 116, and 118 of FIG. 1.Each active signal transmitted from each transmitter (e.g., differentactive signals each transmitted by transmitters 104, 106, 108, and 110of FIG. 1) is received by each sensor (e.g., sensors 112, 114, 116, and118 of FIG. 1) and may be processed to determine a detected signal(e.g., spatial domain signal determined at 508 of FIG. 5) thatcharacterizes a signal disturbance caused by the touch input. In someembodiments, for each hypothesis set of touch contact location(s), anexpected signal is determined for each signal expected to be received atone or more sensors. The expected signal may be determined using apredetermined function that utilizes one or more predeterminedcoefficients (e.g., coefficient determined for a specific sensor and/ortransmitter transmitting a signal to be received at the sensor) and thecorresponding hypothesis set of touch contact location(s). The expectedsignal(s) may be compared with corresponding detected signal(s) todetermine an indicator of a difference between all the expectedsignal(s) for a specific hypothesis set and the corresponding detectedsignals. By comparing the indicators for each of the one or morehypothesis sets, the selected hypothesis set may be selected (e.g.,hypothesis set with the smallest indicated difference is selected).

At 708, it is determined whether additional optimization is to beperformed. In some embodiments, determining whether additionaloptimization is to be performed includes determining whether any newhypothesis set(s) of touch contact location(s) should be analyzed inorder to attempt to determine a better selected hypothesis set. Forexample, a first execution of step 706 utilizes hypothesis setsdetermined using locations on a larger distance increment coordinategrid overlaid on a touch input surface and additional optimization is tobe performed using new hypothesis sets that include locations from acoordinate grid with smaller distance increments. Additionaloptimizations may be performed any number of times. In some embodiments,the number of times additional optimizations are performed ispredetermined. In some embodiments, the number of times additionaloptimizations are performed is dynamically determined. For example,additional optimizations are performed until a comparison thresholdindicator value for the selected hypothesis set is reached and/or acomparison indicator for the selected hypothesis does not improve by athreshold amount. In some embodiments, for each optimization iteration,optimization may be performed for only a single touch contact locationof the selected hypothesis set and other touch contact locations of theselected hypothesis may be optimized in a subsequent iteration ofoptimization.

If at 708 it is determined that additional optimization should beperformed, at 710, one or more new hypothesis sets of one or more touchcontact locations associated with the number of the touch contacts aredetermined based on the selected hypothesis set. In some embodiments,determining the new hypothesis sets includes determining location points(e.g., more detailed resolution locations on a coordinate grid withsmaller distance increments) near one of the touch contact locations ofthe selected hypothesis set in an attempt to refine the one of the touchcontact locations of the selected hypothesis set. The new hypothesissets may each include one of the newly determined location points, andthe other touch contact location(s), if any, of a new hypothesis set maybe the same locations as the previously selected hypothesis set. In someembodiments, the new hypothesis sets may attempt to refine all touchcontact locations of the selected hypothesis set. The process proceedsback to 706, whether or not a newly selected hypothesis set (e.g., ifpreviously selected hypothesis set still best corresponds to detectedsignal(s), the previously selected hypothesis set is retained as the newselected hypothesis set) is selected among the newly determinedhypothesis sets of touch contact location(s).

If at 708 it is determined that additional optimization should not beperformed, at 714, the selected hypothesis set is indicated as thedetected location(s) of touch contact(s) of the touch input. Forexample, a location coordinate(s) of a touch contact(s) is provided.

FIG. 8 is a flowchart illustrating an embodiment of a process forselecting a selected hypothesis set of touch contact location(s). Insome embodiments, the process of FIG. 8 is included in 706 of FIG. 7.The process of FIG. 8 may be implemented in touch detector 120 of FIG. 1and/or touch detector 202 of FIG. 2.

At 802, for each hypothesis set (e.g., determined at 704 of FIG. 7), anexpected signal that would result if a touch contact was received at thecontact location(s) of the hypothesis set is determined for eachdetected signal and for each touch contact location of the hypothesisset. In some embodiments, determining the expected signal includes usinga function and one or more function coefficients to generate/simulatethe expected signal. The function and/or one or more functioncoefficients may be predetermined (e.g., determined at 306 of FIG. 3)and/or dynamically determined (e.g., determined based on one or moreprovided touch contact locations). In some embodiments, the functionand/or one or more function coefficients may be determined/selectedspecifically for a particular transmitter and/or sensor of a detectedsignal. For example, the expected signal is to be compared to a detectedsignal and the expected signal is generated using a function coefficientdetermined specifically for the pair of transmitter and sensor of thedetected signal. In some embodiments, the function and/or one or morefunction coefficients may be dynamically determined.

In some embodiments, in the event the hypothesis set includes more thanone touch contact location (e.g., multi-touch input), expected signalfor each individual touch contact location is determined separately andcombined together. For example, an expected signal that would result ifa touch contact was provided at a single touch contact location is addedwith other single touch contact expected signals (e.g., effects frommultiple simultaneous touch contacts add linearly) to generate a singleexpected signal that would result if the touch contacts of the addedsignals were provided simultaneously.

In some embodiments, the expected signal for a single touch contact ismodeled as the function:C*P(x−d)where C is a function coefficient (e.g., complex coefficient) and P(x)is a function and d is the total path distance between a transmitter(e.g., transmitter of a signal desired to be simulated) to a touch inputlocation and between the touch input location and a sensor (e.g.,receiver of the signal desired to be simulated).

In some embodiments, the expected signal for one or more touch contactsis modeled as the function:

$\sum\limits_{j = 1}^{N}{C_{j}{P\left( {x - d_{j}} \right)}}$where j indicates which touch contact and N is the number of totalsimultaneous touch contacts being modeled (e.g., number of contactsdetermined at 702 of FIG. 7).

At 804, corresponding detected signals are compared with correspondingexpected signals. In some embodiments, the detected signals includespatial domain signals determined at 508 of FIG. 5. In some embodiments,comparing the signals includes determining a mean square error betweenthe signals. In some embodiments, comparing the signals includesdetermining a cost function that indicates the similarly/differencebetween the signals. In some embodiments, the cost function for ahypothesis set (e.g., hypothesis set determined at 704 of FIG. 7)analyzed for a single transmitter/sensor pair is modeled as:

${ɛ\left( {r_{x},t_{x}} \right)} = {{{q(x)} - {\sum\limits_{j = 1}^{N}{C_{j}{P\left( {x - d_{j}} \right)}}}}}^{2}$where ε(r_(x), t_(x)) is the cost function, q(x) is the detected signal,and Σ_(j=1) ^(N)C_(j)P(x−d_(j)) is the expected signal. In someembodiments, the global cost function for a hypothesis set analyzed formore than one (e.g., all) transmitter/sensor pairs is modeled as:

$ɛ = {\sum\limits_{i = 1}^{z}{ɛ\left( {r_{x},t_{x}} \right)}_{i}}$where ε is the global cost function, Z is the number of totaltransmitter/sensor pairs, i indicates the particular transmitter/sensorpair, and ε(r_(x), t_(x))_(i) is the cost function of the particulartransmitter/sensor pair.

At 806, a selected hypothesis set of touch contact location(s) isselected among the one or more hypothesis sets of touch contactlocation(s) as best corresponding to detected signal(s). In someembodiments, the selected hypothesis set is selected among hypothesissets determined at 704 or 710 of FIG. 7. In some embodiments, selectingthe selected hypothesis set includes determining the global costfunction (e.g., function £ described above) for each hypothesis set inthe group of hypothesis sets and selecting the hypothesis set thatresults in the smallest global cost function value.

FIG. 9 is a flow chart illustrating an embodiment of a process fordetermining the number of simultaneous touch contacts. In someembodiments, the process of FIG. 9 is included in 702 of FIG. 7. Theprocess of FIG. 9 may be implemented on acoustic processor 126 and/ortouch detector 120 of FIG. 1.

At 902, a detected signal is received. The detected signal may be anacoustic signal. In some embodiments, the acoustic signal captures asound/vibration generated due to one or more objects contacting a touchinput surface such as the surface of medium 102 of FIG. 1. In someembodiments, the detected signal is received from sensor 124 of FIG. 1.In some embodiments, the detected signal is received from one or moresensors of sensors 112, 114, 116 and 118. The received signal may be anultrasonic signal. In some embodiments, the detected signal includes thedisturbed active signal received at 404 of FIG. 4.

At 904, the received signal is filtered to reduce noise included in thereceived acoustic signal. In some embodiments, background audio, such ashuman speech or music, could potentially create false contact eventswithout proper filtering and/or pulse qualification. In someembodiments, a rate of spectral change of a portion of the receivedsignal is measured. For example, by exploiting the observation thatbackground noise can be viewed as statistically stationary over the spanof tens of milliseconds, signal portions with a relative lower rate ofspectral change are identified as background noise not capturing a touchcontact event. In some embodiments, a fast Fourier transform of thereceived acoustic signal is determined over a short time extent (e.g.,less than 10 milliseconds). If a signal portion with a slow change isdetected (e.g., below a threshold value), the signal portion is reducedand/or removed to filter the received signal. In some embodiments,filtering the received signal is optional. In some embodiments,filtering the received signal includes removing/reducing one or morecomponents of an active signal included in the received signal. Forexample, a baseline signal (e.g., determined at 306 of FIG. 3)representing a measured signal associated with a received active signalthat has not been disturbed by a touch input disturbance is subtractedfrom the received detected acoustic signal.

At 906, a number of simultaneous (e.g., within a threshold amount oftime) touch contacts captured in the received signal is determined. Insome embodiments, the number of touch contacts (e.g., fingers) touchinga touch input surface may be determined by “counting” the number oftouches/contacts (e.g., determine the number of times detected acousticsignal is above a threshold level) within a predetermined amount oftime. For example, when a user intends to touch a touch input screenwith multiple fingers at the same time, it is rare for the fingers toland on the screen at the same time. There will likely be a small delaybetween when the fingers land on the touch surface. The number ofimpacts (e.g., determined by analyzing acoustic signal received fromsensor 124 of FIG. 1) may be determined from determining the number ofconsecutive touches within a relatively short amount of time (e.g.,within a predetermined amount of time, such as 100 milliseconds). Insome embodiments, determining the number of touch contacts includesdetermining the number of times the energy of the filtered/receivedsignal is above a threshold energy value within a predetermined amountof time. In some embodiments, determining the number of touch contactsincludes determining the number of times a rate of spectral change ofthe filtered/received signal is above a threshold value within apredetermined amount of time. For example, a fast Fourier transform ofthe received acoustic signal is determined to determine the rate ofspectral change.

At 908, the determined number of touch contacts is provided. In someembodiments, the number determined at 906 is provided to a process(e.g., provided at step 702 of FIG. 7) that determines touch contactlocations of a touch input.

FIG. 10 is a flow chart illustrating an embodiment of a process fordetermining a type of object used to provide a touch contact. In someembodiments, the process of FIG. 10 is included in 702 of FIG. 7. Theprocess of FIG. 10 may be implemented on acoustic processor 126 and/ortouch detector 120 of FIG. 1.

At 1002, a detected signal is received. The detected signal may be anacoustic signal. In some embodiments, the acoustic signal captures asound/vibration generated due to one or more objects contacting a touchinput surface such as the surface of medium 102 of FIG. 1. In someembodiments, the detected signal is received from sensor 124 of FIG. 1.In some embodiments, the detected signal is received from one or moresensors of sensors 112, 114, 116 and 118. The received signal may be anultrasonic signal. In some embodiments, the detected signal includes thedisturbed active signal received at 404 of FIG. 4.

At 1004, the received signal is filtered to reduce noise included in thereceived signal. In some embodiments, background audio, such as humanspeech or music, could potentially create false contact events withoutproper filtering. In some embodiments, a rate of spectral change of aportion of the received signal is measured. For example, by exploitingthe observation that background noise can be viewed as statisticallystationary over the span of tens of milliseconds, signal portions with arelative lower rate of spectral change are identified as backgroundnoise not capturing a touch contact event. In some embodiments, a fastFourier transform of the received acoustic signal is determined over ashort time extent (e.g., less than 10 milliseconds). If a signalcomponent with a slow change is detected (e.g., below a thresholdvalue), the signal portion is reduced and/or removed to filter thereceived signal. In some embodiments, filtering the received signal isoptional. In some embodiments, filtering the received signal includesremoving/reducing one or more components of an active signal included inthe received signal. For example, a baseline signal (e.g., determined at306 of FIG. 3) representing a measured signal associated with a receivedactive signal that has not been disturbed by a touch input disturbanceis subtracted from the received detected acoustic signal.

At 1006, a type of object used to provide a touch contact is determined.In some embodiments, determining the type of object includes determiningwhether the touch contact of a touch input was provided using a finger(e.g., which finger), a stylus (e.g., which stylus or tip of stylus), orother detectable object. In some embodiments, determining the type ofobject includes analyzing an energy/signal captured in thereceived/filtered signal due to the touch contact of the object on atouch input surface. In some embodiments, portion(s) of thereceived/filtered signal that are each associated with a touch contactare identified. For example, using at least a portion of the process ofFIG. 9, portion(s) of the received signal corresponding to each touchcontact are identified and for each touch contact a type of object usedto provide the touch contact is determined.

In some embodiments, at least a portion of the received/filtered signalcorresponding to a touch input contact is analyzed to determine whetherit matches a known signature (e.g., acoustic signature waveform) of aknown object type. For example, a finger touching a touch input surfacemay be characterized by a different detected acoustic signature ascompared to a harder object such as a pen or a stylus. A differentwaveform signature associated with each detectable object type may becompared to at least a portion of the received/filtered signal todetermine the type of the object contacting the touch input surface. Insome embodiments, the object type waveform signatures are predeterminedand stored in a dictionary/data structure. For example, for each objecttype desired to be detectable, a sample signal of the object contactinga sample touch input surface is captured and characterized as the objecttype waveform signature of the object. If at least a portion of thereceived/filtered signature matches (e.g., within a thresholddifference) one of the predetermined signatures, an object typeassociated with the matched signature is identified as the object typeof the portion of the received/filtered signal.

In some embodiments, determining the object type of the touch contactincludes feature matching in the time domain by correlating a waveformof at least a portion of the received/filtered signal against a known“dictionary” of waveforms from contact events. In some embodiments,determining the object type of the touch contact includesfrequency-domain matching of at least a portion of the received/filteredsignal against a known “dictionary” of frequency-domain spectra fromcontact events. In some embodiments, determining the object type of thetouch contact includes wavelet-domain matching of at least a portion ofthe received/filtered signal against a known “dictionary” ofwavelet-domain transforms from contact events.

At 1008, the identified touch contact object type is provided. In someembodiments, the type determined at 1006 is provided to an application(e.g., to application system 122) to provide aninteraction/functionality based on the identified object type. In someembodiments, differentiation between a stylus or pen contact versus ahuman finger can be used to initiate different behaviors on a device.For example, detection of a stylus contact may invoke handwritingdetection on an application.

FIG. 11 shows a waveform diagram of an example received/filtered signalthat has been identified with touch contact object types. Waveform 1100shows four touch contacts that have been identified (e.g., using theprocess of FIG. 9) and type identified (e.g., using the process of FIG.10) with the object type that provided the touch contact. As shown inFIG. 11, the waveforms of the fingertip touch contact vs. a metal stylustip touch contact are distinctly different and may be identified usingcorresponding touch input object type acoustic waveform signatures.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, the invention is not limitedto the details provided. There are many alternative ways of implementingthe invention. The disclosed embodiments are illustrative and notrestrictive.

What is claimed is:
 1. A system for determining touch contact locations,comprising: a communication interface configured to receive a signalthat has been disturbed by touch contacts of a touch input on a surface,wherein the signal was propagating in a medium of the surface prior tothe touch input; and a processor coupled with the communicationinterface and configured to: correlate the received signal to determinea time domain signal encoding a time delay represented in the receivedsignal; transform the time domain signal to determine a spatial domainsignal, wherein transforming the received signal includes translatingthe time delay represented in the received signal disturbed by the touchinput to a physical distance encoded in the spatial domain signal;compare the spatial domain signal with an expected signal associatedwith potential locations of sources of disturbances caused by the touchcontacts, wherein the spatial domain signal encodes the physicaldistance traveled by the received signal due to the disturbance causedby the touch input and the expected signal encodes a variable withrespect to a measure of distance; determine the locations of the touchcontacts of the touch input based at least in part on the comparison. 2.The system of claim 1, wherein a number of simultaneous multi-touchcontacts of the touch contacts of the touch input is counted at least inpart by analyzing a second acoustic signal detected due to the touchcontacts.
 3. The system of claim 2, wherein the second signal is anacoustic signal detected by a transducer coupled with a medium of thetouch surface and configured to convert a detected vibrational energy tothe second signal.
 4. The system of claim 2, wherein one or morecomponents of the system are transitioned from a powered down state toan active state when the touch contacts are detected.
 5. The system ofclaim 2, wherein the processor is further configured to filter abackground noise included in the second signal.
 6. The system of claim5, wherein filtering the background noise includes measuring a rate ofspectral change of at least a portion of the second signal.
 7. Thesystem of claim 2, wherein the second signal was detected using a sensorthat is different from one or more sensors used to detect the signalthat has been disturbed by the touch input contacts.
 8. The system ofclaim 2, wherein analyzing the second signal includes detecting acousticenergy of the second signal within a predetermined amount of time. 9.The system of claim 2, wherein analyzing the second signal includescounting a number of consecutive acoustic impacts detected in the secondsignal within a predetermined amount of time.
 10. The system of claim 2,wherein analyzing the second signal includes determining a number ofconsecutive times an energy of the second signal is above a thresholdvalue within a predetermined amount of time.
 11. The system of claim 2,wherein analyzing the second signal includes determining a number oftimes a rate of spectral change of the second signal is above athreshold value within a predetermined amount of time.
 12. The system ofclaim 11, wherein determining the rate of spectral change includesdetermining a fast Fourier transform of at least a portion of the secondsignal.
 13. The system of claim 2, wherein the expected signal isassociated with the determined number of touch input contacts.
 14. Thesystem of claim 2, wherein determining the touch contact locationsincludes selecting the determined number of touch input contacts ofpotential locations among a plurality of potential locations as thetouch contact locations.
 15. The system of claim 2, wherein theprocessor is further configured to generate the expected signal tosimulate an ideal spatial domain signal that would result if thedetermined number of touch input contacts was received at the potentiallocations.
 16. The system of claim 2, wherein the received signal thathas been disturbed by the touch input contacts is an active signal thathas been propagated through a medium of the surface.
 17. The system ofclaim 2, wherein comparing the spatial domain signal with the expectedsignal includes determining a result of a cost function comparing aplurality of spatial domain signals with corresponding expected signalsfor a plurality of pairs of transmitters and sensors coupled to a mediumof the surface.
 18. A method for determining touch contact locations,comprising: receiving a signal that has been disturbed by touch contactsof a touch input on a surface, wherein the signal was propagating in amedium of the surface prior to the touch input; correlating the receivedsignal to determine a time domain signal encoding a time delayrepresented in the received signal; transforming the time domain signalto determine a spatial domain signal, wherein transforming the receivedsignal includes translating the time delay represented in the receivedsignal disturbed by the touch input to a physical distance encoded inthe spatial domain signal; using a processor to compare the spatialdomain signal with an expected signal associated with potentiallocations of sources of disturbances caused by the touch contacts,wherein the spatial domain signal encodes the physical distance traveledby the received signal due to the disturbance caused by the touch inputand the expected signal encodes a variable with respect to a measure ofdistance; and determining the locations of the touch contacts of thetouch input based at least in part on the comparison.
 19. A computerprogram product for determining touch contact locations, the computerprogram product being embodied in a non-transitory computer readablestorage medium and comprising computer instructions for: receiving asignal that has been disturbed by touch contacts of a touch input on asurface, wherein the signal was propagating in a medium of the surfaceprior to the touch input; correlating the received signal to determine atime domain signal encoding a time delay represented in the receivedsignal; transforming the time domain signal to determine a spatialdomain signal, wherein transforming the received signal includestranslating the time delay represented in the received signal disturbedby the touch input to a physical distance encoded in the spatial domainsignal; comparing the spatial domain signal with an expected signalassociated with potential locations of sources of disturbances caused bythe touch contacts, wherein the spatial domain signal encodes thephysical distance traveled by the received signal due to the disturbancecaused by the touch input and the expected signal encodes a variablewith respect to a measure of distance; and determining the locations ofthe touch contacts of the touch input based at least in part on thecomparison.